const timers: { [key: string]: NodeJS.Timeout | null } = {};
// 加上key值区分不同按钮所开启的定时器
export function throttle(this: any, fn: Function, time: number, key: string) {
  console.log("throttle222222", fn, time, key);

  const that = this;
  return function (...args: any) {
    // console.log(`timers[${key}]`, timers[key])

    if (!timers[key]) {
      timers[key] = setTimeout(() => {
        timers[key] = null;
      }, time);
      fn.apply(that, args);
    }
  };
}

// export default throttle;

// 不区分Key值的
// let timer = null
// function throttle(fn, time) {
//   console.log('fn', fn)
//   console.log('timer', timer)
//   const that = this
//   return function(...args) {
//     if (!timer) {
//       timer = setTimeout(() => {
//         timer = null
//       }, time)
//       fn.apply(that, args)
//     }
//   }
// }

// 例子:
// 节流getList
// throttleGetList(tag) {
//   // 传参数/不传参数都可以这么写
//   // const throttledFn = this.$throttle(function() {
//   //   this.getList(tag)
//   // }, 3000, 'getList')

//   // 不传参数
//   const throttledFn = this.$throttle(
//     this.getList
//     , 3000, 'getList')
//   throttledFn()
// },
